package com.etalk.crm.dao;

import com.etalk.crm.pojo.StudentDynamics;
import com.etalk.crm.pojo.StudentDynamicsAttachment;
import com.etalk.crm.pojo.StudentInfo;
import com.etalk.crm.pojo.TrackRemind;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StudentDynamicsMapper {
    /**
     * 添加学生动态信息
     *
     * @param studentDynamics
     * @return
     */
    int addStuDynamic(StudentDynamics studentDynamics);

    /**
     * 修改学生 客户属性
     *
     * @param String 手机号码
     * @return int 记录数
     ***/
    int updateStudentAttributeById(@Param("personId") int personId, @Param("revisitStatusId") int revisitStatusId);


    /**
     * @return
     * @Author James
     * @Description 添加学生基本信息记录
     * @Date 12:41 2019/1/29
     * @Param
     **/
    int addStuInfo(StudentInfo studentInfo);


    /**
     * @return
     * @Author James
     * @Description 查询用户客户属性记录是否存在
     * @Date 13:30 2019/1/29
     * @Param
     **/
    int selectCountByStudentInfo(@Param("personId") int personId);

    /**
     * @return
     * @Author James
     * @Description 提醒记录
     * @Date 13:52 2019/1/29
     * @Param
     **/
    int countTrackRemind(TrackRemind trackRemind);

    /**
     * @return
     * @Author James
     * @Description 添加动态
     * @Date 13:56 2019/1/29
     * @Param
     **/
    int addTrackRemind(TrackRemind trackRemind);

    /**
     * 插入动态附件信息
     *
     * @param
     * @return
     */
    int insertDynamicsAttachments(List<StudentDynamicsAttachment> dynamicsAttachmentList);


    /**
     * 保存是否线下店上demo的值
     */

    int updateClassStoresById(@Param("id") int id, @Param("classStores") Integer classStores);

    /**
     * 查询该学生最后一次动态跟踪状态
     *
     * @param personId
     * @return
     */
    Integer selectLastRevisitStatus(@Param("personId") int personId);

    /**
     * 批量条件删除
     * 参数:删除条件,null为整张表
     * 返回:删除个数
     *
     * @ibatorgenerated 2017-12-12 19:30:47
     */
    int deleteByExample(@Param("dynamicsId") int dynamicsId);

    /**
     * 删除动态附件
     *
     * @param dynamicsId
     * @return
     */
    int deleteDybamicsAttachments(@Param("dynamicsId") int dynamicsId);


    /**
     * 删除动态
     *
     * @param dynamicsId
     * @return
     */
    int deleteDybamics(int dynamicsId);

    /**
     * 批量条件修改，空值条件不修改
     * 参数:1.要修改成的值，2.要修改条件
     * 返回:成功修改个数
     *
     * @ibatorgenerated 2017-12-12 19:30:47
     */
    int updateByExampleSelective(@Param("dynamicsId") int dynamicsId, @Param("state") int state);

    /**
     * 修改提醒记录为完成
     * @param id 提醒记录id
     * @return 记录数
     */
    int updateTrackRemindStateById(@Param("id") int id);

    /**
     * 动态列表
     *
     * @param personId
     * @return
     */
    List<StudentDynamics> searchInfoByStudentId(@Param("personId") int personId);

    /**
     * 根据动态id查询动态附件信息
     *
     * @param personId
     * @return
     */
    List<StudentDynamicsAttachment> searchDynamicsAttachmentsByDynamicsId(@Param("list") List<Integer> list);
}
